home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / basic / pbtool.exe / FREESPC.BAS < prev    next >
BASIC Source File  |  1991-10-28  |  2KB  |  55 lines

  1. '----------------------------------------------------------
  2. '  PROGRAM: FREESPC.BAS        PROGRAMMER: A. KELLETT
  3. '  DATE-WRITTEN: 10/28/91
  4. '  USING POWER BASIC V2.10A
  5. '
  6. '  THIS PROGRAM ALLOWS THE USER TO DISPLAY THE AMOUNT OF
  7. '  FREE SPACE ON THE SPECIFIED DISK DRIVE.
  8. '
  9. '  VERSION: 0.00    LAST UPDATED: 00/00/00
  10. '----------------------------------------------------------
  11.  
  12. CLS
  13. PRINT "        THIS PROGRAM CHECKS THE AMOUNT OF FREE SPACE ON THE DISK DRIVE"
  14. PRINT "        YOU SPECIFY."
  15. PRINT:PRINT
  16.  
  17. PRINT:PRINT "PLEASE ENTER DRIVE NUMBER [1-4, A=1, B=2, ETC]"
  18.  
  19. KY$ = ""
  20. DO
  21.    KEYIN$ = UCASE$(INKEY$)
  22. LOOP UNTIL INSTR(" 1234", KEYIN$) > 1
  23. DRIVE% = VAL(KEYIN$)
  24. FREE.SPACE& = FNFreeSpace(DRIVE%)
  25. IF DRIVE% = 1 THEN
  26.    DRIVE$ = "A"
  27. ELSEIF DRIVE% = 2 THEN
  28.    DRIVE$ = "B"
  29. ELSEIF DRIVE% = 3 THEN
  30.    DRIVE$ = "C"
  31. ELSEIF DRIVE% = 4 THEN
  32.    DRIVE$ = "D"
  33. END IF
  34.  
  35. PRINT:PRINT "FREE SPACE ON DRIVE ";DRIVE$;": IS ";
  36. PRINT USING " ###,###,###";FREE.SPACE&
  37.  
  38. END
  39. '       Drive% must be from 0 - 4  [0 = default, 1 = A,... 4 = D]
  40. '       print "Free bytes = ";FNFreeSpace(drive%)
  41. '------ This function returns free disk space of specified drive -----
  42. DEF FNFreeSpace(Drive%)
  43.                         '  DOS function 36H returns the number of free
  44.                         '  clusters on the selected drive
  45.                         '  0 = default, 1 = A, 2 = B, 3 = C, 4 = D
  46.    REG 4,drive%         '  pass drive number in DX register
  47.    REG 1,&H3600         '  AH = function number
  48.    CALL INTERRUPT &H21  '  tell DOS to get on with it!
  49.                         '  space = available clusters * bytes/sector *
  50.                         '    sectors/cluster
  51.                         '   space = BX * CX * AX
  52.    FNFreeSpace = CSNG(REG(2))*REG(3)*REG(1)
  53. END DEF
  54.  
  55.